<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script type="text/javascript">
            /**
             * 强制数据类型转换
             *  - 指将一个数据类型强制转换为其他的数据类型
             *  - 类型转换主要指，将其他的数据类型转换为String, Number, Boolean。
             */

            
            
            /* 
               将其他的数据类型转为String
               方式一:
                    - 调用被转换数据类型的toString()方法
                    - 该方法不会影响原变量,它会将转换的结果返回
                    - 但是注意: null和undefined这两个值没有toString()方法,
                            如果调用他们的方法,会报错

                
                方式二:
                    - 调用String()函数,并将被转换的数据作为参数传递给函数
                    - 使用String()函数做强制类型转换
                        对于Number和Boolean实际上就是调用的toString()方法。
                        但是对于null和underfined,就不会调用toString()
                                它会将null直接转换为"null"

             */
            var a = 123;

            //调用a的toString()方法
            //调用xxx的yyy()方法,就是xxx.yyy()
            var b = a.toString();

            console.log(typeof a);
            console.log(a);

            console.log(typeof b);
            console.log(b);
            
            //布尔类型也可以转字符串
            var c = true;
            var d = c.toString();

            console.log(typeof d);
            console.log(d)

            //undefined也可以转字符串,但是不能用toString()方法
            var e = undefined
            var f = String(e);

            console.log(typeof f);
            console.log(f);

            //调用String()函数,来将a转换为字符串
            a = String(a);
            
            a = null;
            a = String(a);

            a = undefined;
            a = String(a);


            console.log(typeof a);
            console.log(a);


        </script>
    </head>
    <body>
        
    </body>
</html>